From 608e624ecff3508d74a8251f43758c3ac598d035 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Wed, 19 Feb 2020 04:41:28 +0100 Subject: [PATCH] x11: When clearing old Drop, emit LEAVE event This can happen when the old DND operation died (like due to a crash or a broken XWayland compositor. --- gdk/x11/gdkdrop-x11.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gdk/x11/gdkdrop-x11.c b/gdk/x11/gdkdrop-x11.c index 767adac7ab..c85c17be0f 100644 --- a/gdk/x11/gdkdrop-x11.c +++ b/gdk/x11/gdkdrop-x11.c @@ -503,7 +503,12 @@ xdnd_enter_filter (GdkSurface *surface, return TRUE; } - g_clear_object (&display_x11->current_drop); + if (display_x11->current_drop) + { + if (GDK_X11_DROP (display_x11->current_drop)->enter_emitted) + gdk_drop_emit_leave_event (display_x11->current_drop, FALSE, GDK_CURRENT_TIME); + g_clear_object (&display_x11->current_drop); + } seat = gdk_display_get_default_seat (display); -- 2.30.2